<template>
  <div class="container">
    <h1>管理员登录</h1>
    <el-form rel="form" label-width="80px" class="login-form">
      <el-form-item label="用户名">
        <el-input type="text" v-model="admin.username"></el-input>
      </el-form-item>
      <el-form-item label="密码">
        <el-input type="password" v-model="admin.password"></el-input>
      </el-form-item>
      <el-form-item label="验证码">
        <el-input type="text" v-model="admin.captchaInput"></el-input>
        <el-image style="width: 120px; height: 38px" :src="imageBase64Data" @click="getCaptcha" />
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="login">登录</el-button>
        <el-button type="primary">注册</el-button>
      </el-form-item>
    </el-form>
  </div>


</template>

<script setup>
import adminApi from '@/api/adminApi.js';
import router from '@/router/index.js';
import { ElMessage } from 'element-plus';
import { ref } from 'vue';
import { useTokenStore } from '@/stores/token.js';
const TokenStore = useTokenStore();
const admin = ref({
  username: '',
  password: '',
  key: '',
 captchaInput:''
});
const imageBase64Data = ref('');

function handleUserRoleChange() {
  sessionStorage.setItem('userRole', admin.value.user);
}
//登录
function login() {
  adminApi.login(admin.value)
    .then(resp => {
      if (resp.code == 10000) {
        ElMessage.success({
          message: resp.msg,
          duration: 1200,
          onClose: () => {
            //保存jwt到sessionStorage
            TokenStore.update(resp.data)
            router.push('/admin/index')
          }
        });
      } else {
        ElMessage.error(resp.msg);
      }
    })
}
function getCaptcha() {
  adminApi.captcha()
    .then(resp => {
      admin.value.key = resp.data.key;
      imageBase64Data.value = resp.data.imageBase64Data;
    });
}

getCaptcha();


</script>


<style scoped>
.container {
  width: 350px;
  border: 1px solid #ccc;
  border-radius: 5px;
  padding: 20px;
  margin: 100px auto;
  background-color: #f9f9f9;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

.login-form {
  margin-top: 20px;
}



.el-drawer {
  /* 这里的样式将应用于所有el-drawer组件，但由于scoped属性，它只影响当前组件 */
  /* 例如，你可以改变背景色或边框 */
  background-color: #f9f9f9;
  /* 浅灰色背景 */
  border-radius: 8px;
  /* 圆角边框 */
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  /* 阴影效果 */
}

/* 如果需要更具体的选择器来避免样式冲突，可以使用更深的子选择器 */
.el-drawer .el-form {
  /* 这里设置el-form的样式 */
  margin: 20px;
  /* 增加一些内边距 */
}

.el-drawer .el-form-item {
  /* 这里设置el-form-item的样式 */
  margin-bottom: 15px;
  /* 调整间距 */
}

/* 对话框底部的按钮样式 */
.el-drawer .dialog-footer {
  .footer {
    text-align: right;
    /* 文本右对齐 */
    padding: 10px 20px;
    /* 内边距 */
    border-top: 1px solid #ebeef5;
    /* 上边框 */
  }
}
</style>